Object.getNestedPropertyValue = function(object, propName) {
	if(typeof propName !== 'string') {
		return undefined;
	}
	var propNames = propName.split('.');
	var obj = object;

	while(propNames.length > 0) {
		var key = propNames.shift();
		if(obj === null || obj === undefined) {
			return undefined
		}

		obj = obj[key];
	}
	return obj;
}

Object.isEmpty = function(any) {
	if(any === undefined || any === null)
		return true;
	if(typeof any === 'string') {
		return any.trim().length <= 0
	}
	if(Array.isArray(any)) {
		return any.length <= 0
	}
	if(typeof any === 'object') {
		return Object.keys(any).length <= 0
	}
	return false
}

Object.isNestedPropertyEmpty = function(object, propName) {
	return Object.isEmpty( Object.getNestedPropertyValue(object, propName) );
}